Watermarking downloadable game content in a gaming system

ABSTRACT

Systems and methods embed watermark data into downloadable software components. The watermarks may be used to indicate who created or who owns the software components. In addition, a watermark may be inserted to indicate certain transactions have taken place with respect to the software component. For example, a transactional watermark may be embedded when a software component is downloaded from one system to another. The downloadable software components may include banner content, advertising content, denomination data, pay table, language data, video content, audio content, episodic game data, wagering game software, operating system software, device driver software and device firmware.

RELATED APPLICATIONS

This application claims priority under 35 U.S.C. 119(e) from U.S. Provisional Application Ser. No. 60/700,582 filed Jul. 19, 2005, which application is incorporated herein by reference.

LIMITED COPYRIGHT WAIVER

A portion of the disclosure of this patent document contains material to which the claim of copyright protection is made. The copyright owner has no objection to the facsimile reproduction by any person of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office file or records, but reserves all other rights whatsoever. Copyright 2005, 2006, WMS Gaming, Inc.

BACKGROUND

Wagering game machines may be operated as a stand alone unit, or linked in a network of some type to a group of wagering game machines. As technology in the gaming industry progresses, more and more gaming services are being provided to wagering game machines via communication networks that link groups of wagering game machines to a remote central server computer that provides one or more gaming services. As an example, gaming services that may be provided by the remote computer to a wagering game machine via a communication network of some type include player tracking, accounting, cashless award ticketing, lottery, progressive games and bonus games. In addition, wagering game machines are evolving into gaming platforms where the gaming services and game play options provided on the wagering game machines may be dynamically configured. Thus, the number and type of game services and game play options offered on a particular wagering game machine may vary with time.

A gaming entity may operate hundreds, thousands or ten of thousands of wagering game machines. Since gaming is allowed in many locations throughout the world, casinos may have games distributed over a wide geographic area. Within casinos, the wagering game machines may be connected via one or more dedicated networks. Servers are usually located in a backroom of the casino away from the casino floor.

Current techniques for initially loading, modifying or replacing game software in wagering game machines are generally inconvenient, time-consuming, and expensive. In one technique, the entire wagering game machine is disconnected from the central server and replaced with a new machine. This involves the shipment of machines to and from a gaming establishment and requires the services of an appreciable number of skilled and semi-skilled service personnel. The service personnel must identify the machines to be replaced, locate the machines on the gaming establishment floor, and then replace the existing machines with the new machines. In another technique, the media containing the software is replaced with new media containing the new software. Again, the service personnel must identify the machines to receive the new software media, locate the machines on the gaming establishment floor, and then replace the existing media with the new media. In this case, media may be a hard disk, flash, various non-volatile media such as EEPROM, EPROM, etc.

In yet another technique, the new software can be downloaded to the wagering game machine from the central server linked to the wagering game machine. This downloading technique facilitates modifications to the game software in that it does not require removal of the wagering game machine and does not require service personnel to visit the wagering game machine site or the wagering game machine itself.

While providing software in a downloadable form may be convenient for gaming establishment operators, providing the ability to download game content can create several issues. For example, software that is in a format that is convenient to download to authorized machines may also be easily downloaded or otherwise transported to unauthorized machines. Similarly, it may be possible for unauthorized downloadable game content to be introduced onto a gaming system. Additionally, it may be difficult to determine a source or sources for software that has been downloaded.

SUMMARY

Systems and methods embed watermark data into downloadable software components. A first aspect of the systems and methods includes embedding watermarks that may be used to indicate who created or who owns the software components.

A further aspect of the systems and methods includes inserting a watermark to indicate certain transactions have taken place with respect to the software component. For example, a transactional watermark may be embedded when a software component is downloaded from one system to another.

A still further aspect of the systems and methods includes extracting watermark data from a downloadable software component to determine an attribute of the component.

The downloadable software components may include banner content, advertising content, denomination data, pay table, language data, video content, audio content, episodic game data, wagering game software, operating system software, device driver software and device firmware.

The present invention describes systems, methods, and computer-readable media of varying scope. In addition to the aspects and advantages of the present invention described in this summary, further aspects and advantages of the invention will become apparent by reference to the drawings and by reading the detailed description that follows.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a wagering game machine according to an example embodiment.

FIG. 2 is a block diagram of processing components of a wagering game machine according to an example embodiment.

FIG. 3 is a block diagram of major software components of a wagering game machine according to an example embodiment.

FIG. 4 is a block diagram of networks of wagering game machines and gaming systems according to various embodiments of the invention.

FIG. 5 is a block diagram describing various types of watermarks that may be included in a downloadable software component.

FIG. 6 is a flowchart illustrating methods for inserting a watermark into a downloadable software component.

FIG. 7 is a flowchart illustrating methods for extracting and using watermark data from a downloadable software component.

DETAILED DESCRIPTION

In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the scope of the present invention.

Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

In the Figures, the same reference number is used throughout to refer to an identical component which appears in multiple Figures. Signals and connections may be referred to by the same reference number or label, and the actual meaning will be clear from its use in the context of the description.

The description of the various embodiments is to be construed as exemplary only and does not describe every possible instance of the invention. Numerous alternatives could be implemented, using combinations of current or future technologies, which would still fall within the scope of the claims. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.

FIG. 1 illustrates an example wagering game machine 100 in which may be included various embodiments of the invention. In some embodiments, wagering game machine 100 is operable to conduct a wagering game on which monetary value may be wagered. These wagering games may include reel based wagering games such as mechanical or video slots, card based games such as video poker, or other types of wagering games such as video keno, video bingo or a video dice game. If based in video, the wagering game machine 100 includes a video display 112 such as a cathode ray tube (CRT), liquid crystal display (LCD), plasma, or other type of video display known in the art. In the illustrated embodiment, the wagering game machine 100 is an “upright” version in which the display 112 is oriented vertically relative to a player. Alternatively, the wagering game machine may be a “slant-top” version in which the display 112 is slanted at about a thirty-degree angle toward the player. Further, the wagering game machine may be a “bar-top” version in which the display is mounted horizontally in a bar top or table top. Still further, the wagering game machine may be housed in a wall mounted or other vertically mounted cabinet. Additionally, in some embodiments, the wagering game machine may be a portable wagering game machine, such as a handheld wagering game machine.

The wagering game machine 100 includes a plurality of possible credit receiving mechanisms 114 for receiving credits to be used for placing wagers in the game. The credit receiving mechanisms 114 may, for example, include a coin acceptor, a bill acceptor, a ticket reader, and a card reader. The bill acceptor and the ticket reader may be combined into a single unit. The card reader may, for example, accept magnetic cards and smart (chip) cards coded with money or designating an account containing money.

In some embodiments, the wagering game machine 100 includes a user interface comprising a plurality of push-buttons 116, and other possible devices. The plurality of push-buttons 116 may, for example, include one or more “bet” buttons for wagering, a “play” button for commencing play, a “collect” button for cashing out, a help” button for viewing a help screen, a “pay table” button for viewing the pay table(s), and a “call attendant” button for calling an attendant. Additional game specific buttons may be provided to facilitate play of the specific game executed on the machine. A touch screen overlaying video display 112 may define touch keys for implementing many of the same functions as the push-buttons. Additionally, in the case of video poker, the touch screen may implement a card identification function to indicate which cards a player desires to keep for the next round. Other possible user interface devices include a keyboard and a pointing device such as a mouse or trackball.

In some embodiments, wagering game machine 100 includes a top box 140. Top box 140 may contain a video display, a mechanical display, or a diorama display that supplements display 112. For example, the display in top box 140 may be a wheel such as a rotating wheel, mechanical dice, a board for a board game, or other such display.

A processor controls operation of the wagering game machine 100. In response to receiving a wager and a command to initiate play, the processor randomly selects a game outcome from a plurality of possible outcomes and causes the display 112 to depict indicia representative of the selected game outcome. In the case of slots for example mechanical or simulated slot reels are rotated and stopped to place symbols on the reels in visual association with one or more pay lines. If the selected outcome is one of the winning outcomes defined by a pay table, the CPU awards the player with a number of credits associated with the winning outcome.

In some embodiments, wagering game machine 100 may include signage 120. Signage 120 may be a display device capable of displaying advertising, gaming information (e.g. type of game, denomination of game etc.) or other information to a player or potential player.

FIG. 2 is a block diagram of a control system 200 suitable for operating the wagering game machine 100. Money/credit detector 114 signals a processor 220 when a player has inserted money, tickets, tokens, cards or other mechanism for obtaining credits for plays on the wagering game machine through credit mechanisms 114. Using a button panel 116 and/or a touch screen 118, the player may select any variables associated with the wagering game and place his/her wager to purchase a play of the game. In a play of the game, the processor 220 generates at least one random event using a random number generator (RNG) and provides an award to the player for a winning outcome of the random event. Alternatively, the random event may be generated by a remote computer using an RNG or pooling schema and then transmitted to the wagering game machine. The processor 220 operates the display 112 to represent the random event(s) and outcome(s) in a visual form that can be understood by the player. In addition to the processor 220, the control system may include one or more additional slave control units for operating the display 112 and any secondary displays.

System memory 224 stores control software, operational instructions and data associated with the wagering game machine. In some embodiments, the system memory 224 comprises a separate read-only memory (ROM) and battery-backed random-access memory (RAM). However, it will be appreciated that the system memory 224 may be implemented on any of several alternative types of memory structures or may be implemented on a single memory structure. For example, memory 224 may comprise multiple banks of memory, including RAM, compact flash, hard drives, CD-ROM drives, DVD-ROM drives and combinations thereof.

A payoff mechanism 226 is operable in response to instructions from the processor 220 to award a payoff to the player. The payoff may, for example, be in the form of a number of credits. The number of credits is determined by one or more math tables stored in the system memory 224. As noted above with respect to FIG. 1, the payoff mechanism may be a coin hopper, a ticket printer, a magnetic card writer, or a database update mechanism that updates a database maintaining account information.

Network interface 228 operates to communicably couple system 200 in wagering game machine 100 to a network. The network may be any type of wired or wireless network and the network interface 228 may vary based on the type of network. In some embodiments, the network comprises a gaming establishment network such as a LAN (local area network). In alternative embodiments, the network may be an intranet linking multiple networks, for example, the networks of a gaming enterprise that operates multiple gaming establishments. In further alternative embodiments, the network may comprise the Internet.

FIG. 3 illustrates various software executable and data components 300 that may operate or be stored on a wagering game machine 100. Some or all of the various components may be downloadable to the wagering game machine 100. These components may comprise configuration elements for the wagering game machine. In some embodiments, these components include wagering game application 302, game content and data 304-320, operating system 340, device driver 342 and device firmware 350.

Operating system 340 controls the execution of tasks, processes and applications (e.g. wagering game application 302) running on a wagering game machine, and provides interfaces between applications and the hardware present on a wagering game machine. The operating system may be proprietary to the wagering game machine manufacturer or owner, or the operating system may be provided by a third party. Examples of operating systems that may run within the wagering game machine environment include the Microsoft Windows family of operating systems, variants of the UNIX operating system, Linux, and real-time operating systems such as VRTX and QNX. The embodiments are not limited to any particular operating system.

Device driver 342 provides a software interface to hardware that may be present on a wagering game machine and software that desires to utilize such hardware, such as a wagering game application 302. Typically a device driver is a software component that is added to the operating system software, and must be designed to provide interfaces expected by the operating system. A different device driver 342 typically exists for each type of hardware present on a wagering game machine. For example, a ticket printer may have a device driver, a credit acceptor may have a different device driver etc.

Device firmware 350 comprises software that may be downloaded onto a persistent memory resident on a device that may be a component of wagering game machine 100. For example, a ticket printer may include an embedded processor that executes software or reads data from firmware on a flash memory resident on the ticket printer. Other devices that are part of wagering game machine 100 may also have firmware to control the operation and interface to the device.

Wagering game application 302 comprises software that controls the execution of a wagering game on wagering game machine 100. For example, the wagering game application may provide a slot machine application (video or mechanical), keno, card based wagering games (e.g. poker), dice based wagering games or other types of wagering games. The embodiments are not limited to a particular wagering game application.

Wagering game 302 may include one or more data or executable components. These components include denomination data 310, pay table 312, language data 314, video content 316, audio content 318, episode data 320, and configuration data 322. Denomination data 310 includes data that determines the denomination or denominations that the wagering game machine uses to determine the amount of a wager. For example, a wagering game machine may accept payment for credits in units of $0.25, $0.50, $1.00, $5.00 or other amounts. In addition, denomination data 310 also determines the currency for the wagered amount. For example, the currency may be United States dollars, French francs, Euros or other currency.

Pay table 312 may be used to determine which outcomes are winning outcomes and the amount to be credited or paid out for the various winning outcomes. Pay table 312 may be a single table in some embodiments. In alternative embodiments, multiple pay tables may be present on a wagering game machine and vary depending on which game or game version is currently in use.

Language data 314 comprises one or more data sets or files that contain text to be displayed on the wagering game machine. The use of language data 314 allows a wagering game application to display text in languages commonly used in the location where the wagering game machine is used without requiring customization of the wagering game application.

Video content 316 comprises video data that may be displayed by a wagering game application during the course of wagering game play or in an attract mode of the wagering game machine. For example, video content may comprise video clips that are displayed to the user during game play, during a bonus round, or while the wagering game machine is in attract mode.

Audio content 318 comprises audio data that may be played by the wagering game application during the course of wagering game play, bonus round play, or in an attract mode of the wagering game machine. In some embodiments, the audio content may be part of an audio program played on multiple wagering game machines to produce a surround-sound effect.

In some embodiments, a portion of video content 316 or audio content 318 may be provided by a gaming establishment and played during game play or in attract mode. This allows the gaming establishment to tailor a wagering game machine for their environment. For example, the gaming establishment may desire to provide video or audio content having a theme that is consistent with a theme within the gaming establishment as a whole.

Episode data 320 provides configuration data regarding episodes for a game. In some embodiments, the wagering game may be presented to the user in episodes. For example, bonus rounds may vary depending on the episode, or symbols and characters displayed during game play or game play rules may vary with each episode. Additionally, in some embodiments, some or all of video content 316 and audio content 318 may vary depending on the current episode. Episode data 320 may be used to determine which episode is currently presented to the user.

Configuration data 322 represents other types of configuration data related to the operation of a wagering game machine or a group of wagering game machines. Examples of such data include the uses for buttons present on the wagering game machine.

In addition to wagering game application related configuration elements, a wagering game machine may have other types of configuration components. In some embodiments, these components include security data 304, banner content 306 and advertising content 308. Security data 304 may be any type of security data related to the operation of a wagering game machine or group of wagering game machines. In some embodiments, the security data comprises user identification and/or password data. In alternative embodiments, the security data may comprise public key/private key encryption data. In further alternative embodiments, the security data may comprise key ring data for a group of keys. In still further embodiments, the security data may comprise biometric data. Additionally, the security data may comprise authentication and/or authorization data.

Banner content 306 comprises content intended to be displayed on a secondary display or overhead sign for a wagering game machine. The banner content may be displayed on a single wagering game machine, or it may be content designed to be displayed as part of the content for multiple wagering game machines. For example, the content may be displayed in a manner such that the content appears to travel from one machine to the next. Alternatively, the content may be one portion of a message that is displayed across multiple wagering game machines.

Advertising content 308 comprises advertising video, audio, or text data that may be played or displayed on a wagering game machine.

Various combinations of the above-described configuration elements may be downloaded onto a wagering game machine. It should be noted that no embodiment requires that all of the above-described configuration elements be downloadable, rather varying embodiments will provide for the download of varying combinations of one or more of the above-described configuration elements.

Further, the above described configuration elements may be downloaded at different times. For example, it may be desirable to download wagering game applications components, operating system components, device driver components and the like when the machine is idle (i.e. not in use). However, other configuration elements such as episode data, banner content and advertising content may be downloaded at any time, including during wagering game play.

Additionally, some or all of the above-described configuration elements may have different versions. For example, the operating system 340, device driver 342, device firmware 350, or wagering game application 302 may exist in differing versions, with each version having differing combinations of features and/or updates to fix problems with previous versions. Typically a version will have a version identifier associated with it to indicate the software version for the configuration element.

FIG. 4 is a block diagram illustrating various components of a system 400 including networks of wagering game machines and other gaming systems according to embodiments of the invention. In some embodiments, system 400 includes one or more wagering game machines 100 communicably coupled to an operator host system 424 via a network 422. Network 422 may be a wired or wireless network, or a combination of wired and wireless networks. In some embodiments, network 422 is a gaming establishment local area network. In alternative embodiments, network 422 may be a network that links multiple gaming establishments or facilities. In further alternative embodiments, network 422 may include the Internet. The wagering game machines 100 and operator host system 424 communicably coupled via network 422 are included in a network domain 420. In general, domain 420 includes any machine communicably coupled to other machines in a casino-wide or corporate-wide network 422 that are controlled and administered by a gaming establishment or corporation.

Operator host system 424 may be used to store downloadable gaming components for downloading onto one or more wagering game machines 100. As an example, operator host system 424 may be a server system maintained on behalf of a gaming entity that operates wagering game machines 100 within a domain. In some embodiments, operator host system 424 is operable to store downloadable wagering game components 300 that have been purchased or licensed for use on one or more wagering game machines 100.

In some embodiments, system 400 further includes a software creator/distributor system 402. System 402 may serve as a source for downloadable game components 300 that are purchased or licensed by a gaming establishment. After purchase or license, game components 300 may be downloaded from system 402 to operator host system 424 over a network 412. Network 412 may be any type of wired or wireless network capable of communicably coupling system 402 with operator host system 424. In some embodiments, network 412 may be the Internet.

Any or all of software creator/distributor system 402, operator host system 424 and wagering game machines 100 may include a watermark component 404. Watermark component 404 operates to insert a digital watermark into a downloadable software component. In some embodiments, watermark component 404 may extract watermark data from a downloadable software component 300.

Digital watermark data may be inserted into a downloadable software component at multiple points in a download path 410, where download path 410 comprises a set of network connected machines that receive a particular downloadable software component. For example, a watermark may be inserted when a software creator/distributor system sends a downloadable software component to an operator host system 424 via network 412 (download path segment 410.1). In addition, a watermark may be inserted when the downloadable software component is subsequently sent to a wagering game machine 100.3 over network 422 (download path segment 410.2).

In some embodiments, a peer to peer delivery mechanism may be used to deliver downloadable content to wagering game machines 100. In these embodiments, a wagering game machine 100 receives all or a portion of the desired software components from one or more other peer systems that have previously downloaded all or a portion of the software component. For example, the other peer systems may be other wagering game machines 100 within domain 420. Various peer to peer delivery methods are possible. Examples of such peer to peer delivery methods include the Gnutella protocol, the BitTorrent protocol, Morpheus software, or Grokster software. For example, wagering game machine 100.3 may participate in a peer to peer network with wagering game machines 100.1 and 100.2 and operator host system 424. In some embodiments, a watermark component 404 on a wagering game machine may insert a watermark onto downloadable software component 300 before sending it to peer wagering game machine 100.2 over network 422 (download path segment 410.3)

FIG. 5 is a block diagram illustrating various types of watermarks that may be inserted into a downloadable software component. In general, a digital watermark comprises data that is inserted into a pre-existing component in a manner that does not perceptibly alter the functioning of the component. For example, in the case of image data or audio data, watermark data may be embedded in the component in a manner such that it is unlikely that a viewer or listener will notice a difference between the unwatermarked image or audio data and the watermarked image or audio data. An ideal watermarking system embeds data into a component such that the watermark data cannot be removed or altered without making the component entirely unusable. The watermark data itself may comprise text strings, data blocks, image data (e.g. an image indicating copyright ownership), or audio data.

Various methods exist to embed watermark data into image and/or audio data. A first technique involves altering the least significant of the image or audio data. Another technique is to provide a key or seed to a random number generator, whose output is then used to select bits in the image or audio data to be used to hold the watermark data. A watermark extracting component on a receiving system must then use the same key or seed in order to determine which bits comprise the watermark data. A further technique comprises using correlation data between a pseudo-randomly generated noise pattern and the image or audio data to determine watermark data. A still further technique is to alter selected bits of a DCT (Discrete Cosine Transformation) block used in processing many types of image and audio data. Further techniques exist and may be developed in the future. The embodiments of the invention are not limited to any particular technique for embedding watermark data into a downloadable software component.

In some embodiments, the watermark data may comprise a creator watermark 502, an owner watermark 504 or a transactional watermark 506. Creator watermark 502 comprises watermark data that identifies the creator of the software component 300. Such data may include the name of the creator, the date the component was created or modified, a version identification for the component, or any other data regarding the creation of the component.

Owner watermark 504 comprises watermark data that identifies the owner or other rights holder for the component. The owner watermark data may include the name of the owner, the particular ownership rights (e.g. right to display, copy, alter, use, transfer etc.), the date that the rights are valid (e.g. a rights expiration date) or any other data relevant to ownership of rights in the software component.

Transactional watermark 506 comprises a watermark that is embedded into a component upon the occurrence of a transaction. For example, in some embodiments, a transactional watermark is inserted into a software component 300 each time it is downloaded to a system. The watermark may be inserted by the sending system prior to initiating the download. Thus multiple transactional watermarks may exist depending on how many times the software component has been downloaded. The transactional watermark data may include the type of transaction, the date and/or time of the transaction, or any other data relevant to the transaction.

A transactional watermark may also include data indicating a winning outcome of a wagering game. For example, a transactional watermark may be embedded in an image that is displayed on a wagering game machine. The transaction watermark may be used to determine that the winning outcome was generated by the machine, rather than a third party downloading a counterfeit winning image onto a wagering game machine in order to falsely claim that a winning outcome was obtained.

It should be noted that a software component 300 may include multiple watermarks as described above, and that the watermarks in a particular software component 300 may be generated using differing techniques.

FIGS. 6 and 7 are flowcharts illustrating methods for inserting and extracting watermark data into a downloadable software component. The methods to be performed by the operating environment constitute computer programs made up of computer-executable instructions. Describing the methods by reference to a flowchart enables one skilled in the art to develop such programs including such instructions to carry out the method on suitable processors for wagering game machines (the processor or processors of the computer executing the instructions from computer-readable media). The methods illustrated in FIGS. 6 and 7 are inclusive of acts that may be taken by an operating environment executing an exemplary embodiment of the invention.

FIG. 6 is a flowchart illustrating methods 600 for inserting a watermark into a downloadable software component (block 602). The method begins by inserting a first watermark into a software component 300. The watermark may be a creator watermark providing data regarding the creator of the software component. Further, the first watermark may be an owner watermark providing data regarding the owner of certain rights in the software component. Additionally the first watermark may be a transactional watermark. Other types of watermarks may be used and are within the scope of the inventive subject matter.

Next, in some embodiments, the software component is downloaded to a gaming system (block 602). The gaming system may be a wagering game machine 100, and operator host system 424, or other gaming related system (e.g. back office server, progressive server, banner content server etc.).

Other watermarks may be subsequently added to the software component (block 606). As described above, an owner watermark may be added after a creator watermark has been added, or a transactional watermark may be added after an owner or creator watermark has been added.

In some embodiments, the software component may be downloaded to an additional gaming system (block 608). For example, a software component may be initially downloaded from a creator/distributor system to an operator host system, and then further downloaded from the operator host system to one or more wagering game machines. A transactional watermark containing data regarding each download may be inserted at each download step. As an additional example, the wagering game machines in a gaming establishment may participate in a peer to peer network in which software components may be exchanged between arbitrary pairs of wagering game machines or gaming systems. In these embodiments, a transactional watermark may be inserted upon each download. Thus the transactional watermarks may provide an audit trail of download activity maintained in the software component itself.

FIG. 7 is a flowchart illustrating a method 700 for extracting and using watermark data from a downloadable software component 300. The method begins by reading a software component (block 702). The software component may be read from a wagering game machine, an operator host system, or any other gaming related system (back-office server, progressive server, banner server etc.).

Next, the software component is analyzed to determine whether or not a watermark is present (block 704). The method or methods used to analyze whether or not a watermark is present will depend on the technique expected to be used to embed the watermark data. If a watermark is not present, the method ends in some embodiments. However, it should be noted that lack of a watermark may be used to determine that the component is not authorized or valid. For example, a malicious user may download an image to a wagering game machine that would seem to indicate that the user has won a large amount of money or credit. A subsequent test for a watermark on the image that determines a watermark is not present may be used to indicate the image is not valid and that the user has falsified the results.

If a watermark is detected at block 704, the system then proceeds to extract the watermark data (block 706). The method used to extract the watermark data will depend upon the method originally used to embed the watermark data into the component.

Finally, the watermark data may be used to determine one or more attributes of the software component (block 706). For example, the watermark data may be used to determine the creator identity, creation date, download date, ownership rights, ownership dates, or other attributes for the component.

In addition, the watermark may be used to resolve ownership disputes. For example, assume that someone purchases (legitimately or illegitimately) a wagering game machine having downloadable components. The downloadable components may be improperly transferred to other wagering game machines. The presence of a watermark in the components may be used to establish that the components have been improperly transferred, and to prove ownership of the improperly transferred components.

It should be noted that inventive concepts may exist in subsets of the actions illustrated within FIGS. 6 and 7 and that no embodiment of the invention need include each and every action illustrated in FIGS. 6 and 7. Further, it should be noted that actions may be performed in a different order than that described above, and that such different orderings are within the scope of the inventive subject matter.

CONCLUSION

Systems and methods for embedding and extracting watermarks in software components that may be downloaded to wagering game machines have been described. Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of the inventive subject matter.

The terminology used in this application is meant to include all of these environments. It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. Therefore, it is manifestly intended that this invention be limited only by the following claims and equivalents thereof.

The Abstract is provided to comply with 37 C.F.R. §1.72(b) to allow the reader to quickly ascertain the nature and gist of the technical disclosure. The Abstract is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. 

1. A method comprising: providing a network communicably coupling a plurality of gaming systems, the gaming systems including a wagering game machine operable to present a wagering game on which monetary value may be wagered; inserting a first watermark into a software component; and downloading the software component to a first gaming system.
 2. The method of claim 1, wherein the first watermark includes a creator identification.
 3. The method of claim 1, wherein the first watermark includes an owner identification.
 4. The method of claim 1, wherein the first watermark includes transaction data.
 5. The method of claim 1, further comprising inserting a second watermark into the software component.
 6. The method of claim 5, wherein the second watermark includes transaction data.
 7. The method of claim 6, further comprising downloading the software component to a second wagering game machine.
 8. A method comprising: providing a network communicably coupling a plurality of gaming systems, the gaming systems including a wagering game machine operable to present a wagering game on which monetary value may be wagered; reading a downloadable software component for a gaming system of the plurality of gaming systems; extracting watermark data from the downloadable software component; and determining an attribute of the downloadable software component using the watermark data.
 9. The method of claim 8, wherein the attribute comprises ownership data for the downloadable software component.
 10. The method of claim 8, wherein the attribute comprises transaction data for the downloadable software component.
 11. The method of claim 10, wherein the transaction data includes identification data identifying one or more systems in a download path.
 12. The method of claim 10, wherein the transaction data includes a result of a wagering game executed on the gaming system.
 13. The method of claim 8, further comprising determining if the downloadable software component is valid utilizing the attribute.
 14. A system comprising: a first gaming system operable to store a downloadable software component; a first watermarking component executable by the first gaming system and operable to insert a first watermark into the downloadable software component; and a second gaming system operable to receive the downloadable software component having the first watermark.
 15. The system of claim 14, wherein the first watermark includes an owner identification.
 16. The system of claim 14, wherein the second gaming system comprises a wagering game machine operable to present the downloadable gaming software component.
 17. The system of claim 14, further comprising: a second watermarking component executable by the second gaming system and operable to insert a second watermark into the downloadable software component having the first watermark; and a third gaming system operable to receive the downloadable software component having the first watermark and the second watermark.
 18. The system of claim 17, wherein the second watermark includes transaction data.
 19. A machine-readable media having machine executable instructions for performing a method, the method comprising: providing a network communicably coupling a plurality of gaming systems, the gaming systems including a wagering game machine operable to present a wagering game on which monetary value may be wagered; inserting a first watermark into a software component; and downloading the software component to a first gaming system.
 20. A machine-readable having machine executable instructions for performing a method, the method comprising: providing a network communicably coupling a plurality of gaming systems, the gaming systems including a wagering game machine operable to present a wagering game on which monetary value may be wagered; reading a downloadable software component for a gaming system of the plurality of gaming systems; extracting watermark data from the downloadable software component; and determining an attribute of the downloadable software component using the watermark data. 